/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package socafeclient;

import entity.Usuarios;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.swing.table.AbstractTableModel;
/**
 *
 * @author wakowa
 */
public class TableModelUsuario extends AbstractTableModel{
    private ArrayList datalist = new ArrayList();
    private String[] columns = { "idUsuario", "Nombre", "ApellidoP", "ApellidoM","Password","Direccion","Rol" };
    
    @Override
    public int getRowCount() {
        return datalist.size();
    }

    @Override
    public int getColumnCount() {
        return columns.length;
    }
    
    @Override
    public Object getValueAt(int row, int col){
       Usuarios u = (Usuarios) datalist.get(row);
       switch (col) {
           case 0: //idUsuario
                return u.getIdusuario();
            case 1: //Nombre
                return u.getNombre();
            case 2: //ApellidoP
                return u.getApellidop();
            case 3: //ApellidoM
                return u.getApellidom();
            case 4: //Password
                return u.getPassword();
            case 5: //Direccion
                return u.getDireccion();
            case 6: //Rol 
                    return u.getIdrol().getRol();
            default:
                return false;
       }
    }
    public Usuarios getUsuarioAt(int row) {
        return (Usuarios) datalist.get(row);
    }
    
    public Usuarios removeUsuarioAt(int row) {
        Usuarios u = (Usuarios) datalist.remove(row);
        fireTableDataChanged();
        return u;
    }

    public void addUsuario(Usuarios i) {        
        datalist.add(i);
        fireTableDataChanged();
    }

    public void addUsuariosList(List l) {                
        Iterator iterador = l.listIterator();
        while(iterador.hasNext()){
            Usuarios i = (Usuarios) iterador.next();
            datalist.add(i);
        }        
        fireTableDataChanged();
    }

    public TableModelUsuario(List l) {
        Iterator iterador = l.listIterator();
        while(iterador.hasNext()){
            Usuarios i = (Usuarios) iterador.next();
            datalist.add(i);
        }        
    }

    public TableModelUsuario(){
    }

    @Override
    public String getColumnName(int i) {
        return columns[i];
    }

    @Override
    public boolean isCellEditable(int row, int col) {
        switch (col) {
            case 0: //idUsuario
                return false;
            case 1: //Nombre
                return false;
            case 2: //ApellidoP
                return false;
            case 3: //ApellidoM
            return false;
            default:
                return false;
        }
    }    
    
    public void clear(List l)
    {
        datalist.clear();
        addUsuariosList(l);
    }
}
